The invention relates to data rate compression systems, such as low bit rate audio encoding and decoding systems.
Many low bit rate digital audio encoding systems, including Dolby Digital and MPEG-2 AAC generate data streams in which unused bits exist whenever the bit allocation function in the encoder does not utilize all available bits from a bit pool for encoding the audio signal. This occurs if the final bit allocation falls short of using all available bits or if the input audio does not require all available bits. Such unused bits (often referred to as dummy, fill, stuffing, or null bits) are wasted bits that carry no useful information.
According to the present invention all or some of such wasted bits are used to carry information. The replacement of wasted bits with information-carrying bits can be accomplished after an encoder generates a bitstream. In that case, a conventional, unmodified encoder may be employed to generate a standard bitstream. The resulting bitstream is analyzed to identify the locations of some or all of the unused bits. Some or all of the identified unused bits are then replaced with information-carrying bits so that the information-carrying bits are embedded in locations formerly occupied by unused bits. Alternatively, instead of replacing some or all unused bits in the bitstream with information-carrying bits after encoding, a modified encoder may insert information-carrying bits in some or all of the unused bit positions instead of null bits during the encoding process.
Whether the bitstream is modified during or after the encoding process, the resulting modified bitstream should appear the same to a conventional decoder. An unmodified decoder receiving the modified bitstream should ignore the information-carrying bits in the same way it ignores or skips over null bits in the same bit locations. The information-carrying bits that replace unused bits can be recovered either in a modified decoder or in a special decoder that identifies the locations of unused bits, detects the data in the unused bit locations and reports the data. In either case, recovery of the data replacing unused bits in the bitstream does not disturb the remainder of the bitstream. Thus, the present invention preserves audio quality in two ways: it does not use bits that would otherwise be used for audio and it avoids the need for decoding and re-encoding the bitstream.
In a first aspect, the invention is a method for generating a digital bitstream that recurringly captures blocks of input data and processes the blocks of input data to produce blocks shorter than the blocks of input data. In each of the shorter blocks some of the bits represent the input data and have a number which is at least the number of bits allocated from a pool of bits by an adaptive bit allocation process and some of the bits do not represent the input data and have a number which is the number of bits remaining in the pool of bits that are not allocated by the adaptive bit allocation process. Some or all of the bits not representing the input data represent other information. The shorter blocks are assembled to deliver the digital bitstream.
In another aspect, the invention is a method for generating a digital bitstream that recurringly captures blocks of input data and processes the blocks of input data to produce blocks shorter than the blocks of input data. In each of the shorter blocks some of the bits represent the input data and have a number which is at least the number of bits allocated from a pool of bits by an adaptive bit allocation process and some of the bits do not represent the input data and have a number which is the number of bits remaining in the pool of bits that are not allocated by the adaptive bit allocation process. Some or all of the bits not representing the input data represent no information. The shorter blocks are assembled to deliver a digital bitstream, and the digital bitstream is modified by replacing all or some of the bits carrying no information with bits representing information other than the input data.
In a further aspect, the invention is a method for processing a digital bitstream, that receives a digital bitstream in which some of the bits are bits representing input data, the number of which is at least the number of bits allocated from a pool of bits by an adaptive bit allocation process, some of the bits are bits not representing input data, the number of which is the number of bits remaining in the pool of bits that are not allocated by the adaptive bit allocation process, and wherein some or all of the bits not representing input data represent other information. Bits not representing the input data that represent other information are identified, and the identified bits are decoded to recover the other information.